package bintree.my_bin_tree;

import bintree.avl.AVLTree;

/**
 * 测试自己的BST
 * @author yuisama
 * @date 2021/12/14 17:15
 **/
public class BSTTest {
    public static void main(String[] args) {
//        int n = 100;
//        Random random = new Random();
//        BinarySearchTree<Integer> binarySearchTree = new BinarySearchTree<>();
//        for (int i = 0; i < n; i++) {
//            binarySearchTree.add(random.nextInt(Integer.MAX_VALUE));
//        }
//        // test removeMin()
//        List<Integer> list = new ArrayList<>();
//        while (!binarySearchTree.isEmpty()) {
//            list.add(binarySearchTree.removeMin());
//        }
//        // 此时是个升序数组
//        for (int i = 1; i < list.size(); i++) {
//            if (list.get(i - 1).compareTo(list.get(i)) > 0) {
//                System.err.println("remove min error!");
//                break;
//            }
//        }
//        System.out.println("remove min success!");
//        System.out.println("---------------------------");
//        for (int i = 0; i < n; i++) {
//            binarySearchTree.add(random.nextInt(Integer.MAX_VALUE));
//        }
//        // test removeMin()
//        list = new ArrayList<>();
//        while (!binarySearchTree.isEmpty()) {
//            list.add(binarySearchTree.removeMax());
//        }
//        // 此时是个降序
//        for (int i = 1; i < list.size(); i++) {
//            if (list.get(i - 1).compareTo(list.get(i)) < 0) {
//                System.err.println("remove max error!");
//                break;
//            }
//        }
//        System.out.println("remove max success!");
        int[] data = new int[]{10,11,12,13,14,15,16,17,18};
        AVLTree<Integer> binarySearchTree = new AVLTree<>();
        for (int i = 0; i < data.length; i++) {
            binarySearchTree.add(data[i]);
        }
//        System.out.println(binarySearchTree);
        binarySearchTree.remove(14);
        System.out.println(binarySearchTree.isBST());
        System.out.println(binarySearchTree.isBalanced());
        System.out.println(binarySearchTree);
    }
}